____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
Common Language Infrastructure
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
top
Die Common Language Infrastructure, kurz CLI, ist ein internationaler Standard, der Systeme spezifiziert, die sprach- und plattformneutrale Anwendungsentwicklung und -ausfΓΌhrung ermΓΆglichen. Der Standard wird durch die Internationale Organisation fΓΌr Normung unter der Nummer ISO/IEC 23271 gefΓΌhrt und durch die Ecma International unter dem Namen ECMA-335. Aktuell ist die Version 6 vom Juni 2012.
Die CLI ist eine Spezifikation, keine Implementierung. Ihre bekannteste Implementierung ist das .NET Framework von Microsoft fΓΌr Windows-Systeme. Es gibt jedoch auch CLI-Implementierungen fΓΌr Unix/Linux-Systeme, Mac OS X und BSD-Varianten.
Die Entwicklung wird maΓgeblich von Microsoft bestimmt. Das Mono-Projekt hat bereits einen ersten Γnderungsvorschlag zur Standardisierung eingereicht.
Contents
β’ Aufbau
β’ Gliederung
β’ Literatur
β’ Weblinks
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Entstehungsgeschichte
β’ 2000, August β Microsoft, Hewlett-Packard und Intel reichen die Spezifikation der CLI bei der ECMA zur Standardisierung ein.
β’ 2001, Dezember β Der Standard wird als ECMA-335 verabschiedet. IBM, Fujitsu Software, Plum Hall, Monash University und ISE wirkten bei der Entwicklung mit.
β’ 2001, Dezember β Die CLI-Spezifikation wird der ISO/IEC zur Standardisierung vorgelegt.
β’ 2002, Dezember β Erste Revision des Standards zu ECMA-335 2nd edition wird verabschiedet. Die Γnderungen ergaben sich teilweise aus dem laufenden ISO-Standardisierungsprozess.
β’ 2003, April β Der Inhalt von ECMA-335 2nd edition wird von der ISO/IEC als ISO/IEC 23271 (CLI) und ISO/IEC 23272 (CLI TR) ratifiziert.
β’ 2005, Juni β ECMA-335 3rd edition wird von der ECMA standardisiert. Dieser Standard bringt, neben allgemeinen Verbesserungen, vor allem UnterstΓΌtzung fΓΌr Generics und ein standardisiertes Format fΓΌr Debuginformationen.
β’ 2006, Juni β ECMA-335 4th edition wird von der ECMA standardisiert.
β’ 2006, Dezember β ECMA-335 5th edition wird von der ECMA standardisiert.
β’ 2012, Juni β ECMA-335 6th edition wird von der ECMA standardisiert.
Die folgenden Firmen und UniversitΓ€ten haben an der Entwicklung des Standards mitgewirkt: Borland, Fujitsu Software Corporation, Hewlett-Packard, Intel Corporation, IBM Corporation, ISE, IT-UniversitΓ€t Kopenhagen, Jagger Software Ltd., Microsoft Corporation, Monash University, Netscape Communications, Novell/Ximian (heutiger Name: Xamarin), Phone.Com, Plum Hall, Sun Microsystems, University of Canterbury
Aufbau
Der Standard enthΓ€lt die folgenden, wesentlichen Teile:
β’ Common Type System (CTS)
β’ Virtual Execution System (VES)
β’ Common Language Specification (CLS)
β’ Common Intermediate Language (CIL)
β’ Metadaten
Gliederung
Der CLI Standard ECMA-335 3rd edition gliedert sich in sechs Teile, die als Partitionen bezeichnet werden. Diese sind im Einzelnen:
β’ Partition I: Konzepte und Architektur β Beschreibt die Gesamtarchitektur der CLI.
β’ Partition II: Metadatendefinition und Semantik β EnthΓ€lt Informationen ΓΌber Metadaten: Das physische Layout der Dateien, die logischen Inhalte und deren Struktur.
β’ Partition III: CIL β Beschreibt die Instruktionen der CIL
β’ Partition IV: Bibliotheken β EnthΓ€lt eine Spezifikation von Klassen und Klassenbibliotheken, die als Teil der CLI standardisiert sind.
β’ Partition V: Beschreibt das einheitliche Debuggingformat.
β’ Partition VI: AnhΓ€nge.
Implementierungen
Es gibt folgende Implementierungen der CLI:
β’ .NET Framework von Microsoft (Implementierung fΓΌr Windows, die den Standard um zahlreiche weitere Klassenbibliotheken erweitert)
β’ Mono von Novell/Ximian (Implementierung fΓΌr diverse Unix/Linux-Systeme, Mac OS X und Windows; Open Source)
β’ .NET Compact Framework von Microsoft (Implementierung fΓΌr Windows CE auf Basis von x86-, MIPS-, SH4- oder ARM-Prozessoren)
β’ .NET Micro Framework von Microsoft
β’ Silverlight von Microsoft
β’ DotGNU vom gleichnamigen Projekt
β’ .NET Core von Microsoft bzw. der .NET Foundation
Jede dieser CLI-Implementierungen hat auch eine VES-Implementierung. Als Namen fΓΌr diese VES-Implementierungen sind bekannt:
β’ die Common Language Runtime (CLR) ist das VES des .NET Frameworks
β’ TinyCLR ist der Name der VES im .NET Micro Framework
β’ Portable.NET ist der Name der VES im DotGNU
β’ CoreCLR ist der Name der VES im .NET Core
Literatur
β’ James S. Miller, Susan Ragsdale: The Common Language Infrastructure Annotated Standard, Addison-Wesley 2003, ISBN 0321154932
Weblinks